#ifndef PARAMETER_H
#define PARAMETER_H

#include <Klein/Shader/API.h>
#include <Klein/Shader/String.h>

class KLEIN_API Parameter
{
public:

	enum IOType
	{
		IO_INPUT,
		IO_OUTPUT
	};

	enum DataType
	{
		DATA_COLOR,
		DATA_FLOAT
	};

public:

	Parameter(const String& name, const IOType ioType, const DataType dataType, const String& rawValue);
	Parameter(const Parameter& parameter);
	~Parameter();

	const String& GetName() const;

	IOType GetIOType() const;

	DataType GetDataType() const;

	void SetRawValue(const String& rawValue);
	const String& GetRawValue() const;

private:

	String mName;

	IOType mIOType;

	DataType mDataType;

	String mRawValue;
};

#endif
